package com.cloud.cmt.usermanage.controller;

import com.angela.cloud.common.base.ResultMessage;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * 浙江卓锐科技股份有限公司 版权所有 © Copyright 2017<br>
 * 说明: <br>
 * 项目名称: cloud-maintenance <br>
 * 创建日期: 2017年10月21日 15:05 <br>
 * 作者: <a href="6492178@gmail.com">汪萌萌</a>
 *
 * @param <T> the type parameter
 */
public abstract class BaseEntityCtl<T> {
    /**
     * Save result message.
     * 新增数据
     *
     * @param t the t
     * @return the result message
     */
    abstract ResultMessage<T> save(T t);

    /**
     * Gets all.
     * 获取所有数据
     *
     * @param pageable the pageable
     * @return the all
     */
    abstract Page<T> getAll(Pageable pageable);

    /**
     * Gets one.
     * 根据id获取单条数据
     *
     * @param id the id
     * @return the one
     */
    abstract ResultMessage<T> getOne(Long id);

    /**
     * Delete result message.
     * 删除数据
     *
     * @param id the id
     * @return the result message
     */
    abstract ResultMessage delete(Long id);

    /**
     * Update result message.
     * 更新数据
     *
     * @param t the t
     * @return the result message
     */
    abstract ResultMessage<T> update(T t);

}
